gtk4.git
12 years agoFix a typo
Matthias Clasen [Thu, 9 May 2013 16:02:59 +0000 (12:02 -0400)]
Fix a typo

Pointed out in bug
https://bugzilla.gnome.org/show_bug.cgi?id=698051

12 years agoprinting: Don't crash when printer-state-message not provided
Marek Kasik [Mon, 6 May 2013 11:43:18 +0000 (13:43 +0200)]
printing: Don't crash when printer-state-message not provided

Check whether "printer-state-message" was returned before its
usage.

https://bugzilla.gnome.org/show_bug.cgi?id=699750

12 years agolabel: fix return value type for _draw()
Stefan Sauer [Wed, 8 May 2013 20:00:30 +0000 (22:00 +0200)]
label: fix return value type for _draw()

Change from gint to gboolean.

12 years agoMake key themes work again
Matthias Clasen [Wed, 8 May 2013 14:19:08 +0000 (10:19 -0400)]
Make key themes work again

This was inadvertedly broken in commit
44ba5d253f5bbda2d5a42c58218ad2aa318256f4.
Thanks to Matthew Francis for tracking this down and providing
a fix in https://bugzilla.gnome.org/show_bug.cgi?id=699901

12 years agogdkwindow: Don't enforce a native window for a custom visual
Alexander Larsson [Wed, 8 May 2013 13:57:58 +0000 (15:57 +0200)]
gdkwindow: Don't enforce a native window for a custom visual

In the ancient X days you could have Xservers that had multiple active windows, like
one truecolor and one 8bit palette. Then most apps ran in 8bpp but a single window
would use truecolor. This is done by specifying different visuals for the windows.

To make this work we ensured that a window with a visual different from its parent
gets a native subwindow, so that X can tell the hardware to do its magic.

These days the only real time we get two different visual is when one is a rgba visual
and the other is not. So, the code to check this doesn't really do anything but
get in the way when someone accidentally manages to not get a rgba visual on
a child window (see bb7054b508bfe41eb3e7f27496d4c2eb3a2b2f7a). So, to avoid
such errors we just remove the "different visual than parent" check.

12 years agooverlay/paned: Ensure we set the right visual on windows
Alexander Larsson [Wed, 8 May 2013 13:51:00 +0000 (15:51 +0200)]
overlay/paned: Ensure we set the right visual on windows

This was always "needed", but the problems with not doing it
now are worse, since any CSD window will have a nonstandard
rgba visual.

12 years agol10n: Update Japanese translation
Jiro Matsuzawa [Wed, 8 May 2013 12:16:47 +0000 (21:16 +0900)]
l10n: Update Japanese translation

12 years agoRemove abi checking scripts (2)
Rico Tzschichholz [Tue, 7 May 2013 15:34:32 +0000 (17:34 +0200)]
Remove abi checking scripts (2)

In addition to 019ad96479a9bafbf2948aa240dd57e2229f5985

12 years agoGtkPixelCache: Free cache if not used in 20 seconds
Alexander Larsson [Tue, 7 May 2013 12:27:17 +0000 (14:27 +0200)]
GtkPixelCache: Free cache if not used in 20 seconds

No need to keep a performance enhancing cache around if its not
actually in use.

12 years agogdkwindow: Expose all native windows
Alexander Larsson [Tue, 7 May 2013 09:46:50 +0000 (11:46 +0200)]
gdkwindow: Expose all native windows

We need to send exposes for all native windows, even the ones
without an exposure mask set, because otherwise non-native
children of the native window with an exposure mask will
not be drawn.

12 years agoGtkStack: Fix double-draw in crossfade
Alexander Larsson [Tue, 7 May 2013 07:28:30 +0000 (09:28 +0200)]
GtkStack: Fix double-draw in crossfade

We should only draw the cross-fade on the bin window, not doing this
was causing us to draw it multiple times using ADD which resulted
in weird colors.

12 years agogdkwindow: Avoid some unnecessary typechecks
Alexander Larsson [Fri, 3 May 2013 08:44:44 +0000 (10:44 +0200)]
gdkwindow: Avoid some unnecessary typechecks

This removes the typechecks in GDK_WINDOW_TYPE and GDK_WINDOW_DESTROYED. These
are only used internally in gdkwindow.c and gdkdisplay.c anyway,  and these
functions check for typesafety of arguments on function entry.

12 years agoGtkWidget: Use gdk_window_get_children_for_user_data
Alexander Larsson [Fri, 3 May 2013 08:42:40 +0000 (10:42 +0200)]
GtkWidget: Use gdk_window_get_children_for_user_data

This makes iterating over the children a lot faster, as we're
not doing lots of intra-library calls and type checks. We're still
in some sence O(n^2) since we iterate over each child window for each
widget, but the profiles look much better.

12 years agoAdd gdk_window_get_children_with_user_data
Alexander Larsson [Fri, 3 May 2013 08:39:24 +0000 (10:39 +0200)]
Add gdk_window_get_children_with_user_data

This function returns all the children that has a specific user_data set.
This is used a lot in the new GtkWidget drawing code and doing
it this way is faster than getting every child and calling get_user_data
on each (which was a non-neglible part of the profiles). Additionally it
also allows use to use some kind of hashtable to make this operation even
faster if needed in the future.

12 years agoGtkTreeView: port to PixelCache
Alexander Larsson [Tue, 30 Apr 2013 19:34:22 +0000 (21:34 +0200)]
GtkTreeView: port to PixelCache

We register an invalidate handler on the bin window to get told
of child widget invalidations, although we manually need to discard
invalidates from the scroll operation.

Additionally we invalidate all of the pixel cache whenever
the TreeView itself is queue_draw()n to handle e.g. style (bg)
changes, or changes due to model changes causing queue_draw() in
the tree view.

12 years agoMake GtkViewport use GtkPixelCache
Alexander Larsson [Sat, 20 Apr 2013 23:54:05 +0000 (01:54 +0200)]
Make GtkViewport use GtkPixelCache

Since gdk_window_move() no longer uses XCopyArea all scrolling
now re-renders everything in the window. To get performance
back we use a GtkPixelCache to store already drawn children,
and we when we expose the viewport we just blit the
offscreen to the right place.

12 years agoGtkPixelCache: Add debug feature to track redraws
Alexander Larsson [Thu, 2 May 2013 09:47:06 +0000 (11:47 +0200)]
GtkPixelCache: Add debug feature to track redraws

Each time we redraw we tint it in a different color so that
you can see which regions are redrawn.

12 years agoAdd GtkPixelCache
Alexander Larsson [Thu, 2 May 2013 14:23:42 +0000 (16:23 +0200)]
Add GtkPixelCache

GtkPixelCache is a helper utility that lets you implement
faster scrolling of a viewport of a canvas by using an
offscreen pixmap cache.

You call _gtk_pixel_cache_draw with a callback function that
does the drawing, and additionally you specify the size and the
position of the viewport in the widget, and the position and size
of the canvas wrt the viewport. The callback will be called to
draw on an offscreen surface, and the surface will be drawn
on the window. The next time you do the same, any already drawn
pieces of the surface are re-used from the offscreen and need
not be rendered again.

If things inside the canvas change you need to call
_gtk_pixel_cache_invalidate to tell the cache about this.

Some other details:

* The offscreen surface is generally a bit larger than
  the viewport, so scrolling a small amount can often
  be done without redrawing children.
* If the canvas is not larger than the viewport no
  offscreen surface is used.

GtkPixelCache: Make sure we always copy using SOURCE

We were using OVER for the first copy (from source to group surface.

GtkPixelCache: Fix x/y typos

GtkPixelCache: Allow NULL for invalidate region

gtkpixelcache: Use CONTENT_COLOR for solid bg windows

12 years agoGtkWidget: Add a vfunc for queue_draw_region
Alexander Larsson [Thu, 2 May 2013 09:08:10 +0000 (11:08 +0200)]
GtkWidget: Add a vfunc for queue_draw_region

Since widgets now cache drawn state we allow them to override
queue_draw_region to detect when some region of the widget
should be redrawn. For instance, if a widget draws the
background color in a pixel cache we will need to invalidate
that when the style context changes which queues a repaint.

12 years agoAdd gdk_window_set_invalidate_handler
Alexander Larsson [Sat, 20 Apr 2013 23:27:07 +0000 (01:27 +0200)]
Add gdk_window_set_invalidate_handler

This lets you register callbacks for when child widgets invalidate
areas of the window read it and/or change it.

For instance, this lets you do rendering effects and keeping offscreen
caches uptodate.

12 years agowayland: Don't use double buffers for wayland when not needed
Alexander Larsson [Mon, 29 Apr 2013 19:49:12 +0000 (21:49 +0200)]
wayland: Don't use double buffers for wayland when not needed

If we got the release event for the last buffer then we're
fine with writing directly to the window surface, as wayland
will not be looing at it. This saves us from allocating
and copying more data.

12 years agogdkwindow: Make GdkPaintable normal GdkWindowImpl vfuncs
Alexander Larsson [Mon, 29 Apr 2013 16:40:10 +0000 (18:40 +0200)]
gdkwindow: Make GdkPaintable normal GdkWindowImpl vfuncs

There is no need for this to be a separate interface, its just looking
weird.

12 years agogdkwindow: Change how paints work
Alexander Larsson [Mon, 29 Apr 2013 14:25:55 +0000 (16:25 +0200)]
gdkwindow: Change how paints work

First of all, we now only do paints on native windows, as there is
really no reason anymore to do it for subwindows. Secondly, we
keep track of the paints even for GtkPaintable windows, but for
that case we don't create the offscreen surface, but rather
assume the windowing system does the backing store.

12 years agoGtkWindow: Move cairo_save/restore from marshaller
Alexander Larsson [Thu, 25 Apr 2013 12:00:18 +0000 (14:00 +0200)]
GtkWindow: Move cairo_save/restore from marshaller

We do the save/restore when emitting ::draw rather than in a custom
marshaller, as this saves an extra stack frame, which is helpfull now
that we do painting fully recursive. This is also likely to save a few
cycles.

12 years agogdkframeclock: Loop the layout phase if needed
Alexander Larsson [Wed, 24 Apr 2013 20:21:06 +0000 (22:21 +0200)]
gdkframeclock: Loop the layout phase if needed

In the case where the layout phase queued a layout we don't
want to progress to the paint phase with invalid allocations, so
we loop the layout. This shouldn't normally happen, but it may
happen in some edge cases like if user/wm resizes clash with
natural window size changes from a gtk widget. This should not
generally loop though, so we detect this after 4 cycles and
print a warning.

This was detected because of an issue in GtkWindow where it
seems to incorrectly handle the case of a user interactive resize.
It seems gtk_window_move_resize() believes that configure_request_size_changed
changed due to hitting some corner case so it calls
gtk_widget_queue_resize_no_redraw(), marking the window as need_alloc
after the layout phase. This commit fixes the issue, but we should
also look into if we can fix that.

12 years agogdkwindow: Simplify invalidation
Alexander Larsson [Fri, 19 Apr 2013 15:40:58 +0000 (17:40 +0200)]
gdkwindow: Simplify invalidation

Now that all windows are non-opaque we can simplify the invalidation
a lot. There is no need to clip the invalidate area to child regions,
because we will always redraw everything under all the children.
We only have to handle native childen specially.

12 years agogdkwindow: Remove implicit paints
Alexander Larsson [Wed, 17 Apr 2013 21:06:07 +0000 (23:06 +0200)]
gdkwindow: Remove implicit paints

We now only do one expose event per native window, so there will
only be one begin/end_paint() call. This means all the work with
implicit paints to combine the paints on a single double buffer
surface is unnecessary, so we can just delete it.

12 years agoOnly handle exposes on native window, propagate to children via draw()
Alexander Larsson [Wed, 17 Apr 2013 18:55:26 +0000 (20:55 +0200)]
Only handle exposes on native window, propagate to children via draw()

We now consider non-native windows non-opaque, which means any invalid
area in a subwindow will also be invalid all the way up to the nearest
native windows. We take advantage of this by ignoring all expose events
on non-native windows (which typically means just the toplevel) and instead
propagating down the draw() calls to children directly via
gtk_container_propagate_draw.

This is nice as it means we always draw widgets the same way, and it
will let us do some interesting ways in the future.

We also clean up the GtkWidget opacity handling as we can now always
rely on the draing happening via cairo.

We can't really just draw by walking down the widget hierarchy, as
this doesn't get the clipping right (so e.g. widgets doing cairo_paint
may draw outside the expected gdkwindow subarea) nor does it let
us paint window backgrounds.

So, we now do multiple draws for each widget, once for each GdkWindow,
although we still do it on the same base cairo_t that we get for the
toplevel native window. The difference is only the clipping, the rendering
order, and which other widgets we propagate into.

We also collect all the windows of a widget so we can expose them inside
the same opacity group if needed.

NOTE: This change neuters gtk_widget_set_double_buffered for
widgets without native windows. Its impossible to disable
the double buffering in this model.

12 years agogdkwindow: Remove ancient USE_BACKING_STORE define
Alexander Larsson [Wed, 17 Apr 2013 15:10:18 +0000 (17:10 +0200)]
gdkwindow: Remove ancient USE_BACKING_STORE define

This is always set anyway.

12 years agogdkwindow: Simplify clip region calculations
Alexander Larsson [Wed, 17 Apr 2013 15:05:49 +0000 (17:05 +0200)]
gdkwindow: Simplify clip region calculations

Since we no longer make overlapping siblings affect clip_region we
can further simplify the clip region calculation and updating.

12 years agogdkwindow: Simplify clip region handling
Alexander Larsson [Wed, 17 Apr 2013 14:36:52 +0000 (16:36 +0200)]
gdkwindow: Simplify clip region handling

Since we dropped the move region optimization there is really no need
to try carefully keep track of opaque non-overlapped regions, as we
don't use this information to trigger the optimization anymore.

So, by assuming that all windows are non-opaque we can vastly simplify
the clip region stuff. First of all, we don't need clip_region_with_children,
as each window will need to draw under all children anyway. Secondly, we
don't remove overlapping sibling areas from clip_region, as these are
all non-opaque anyway and we need to draw under them

Finally, we don't need to track the layered region anymore as its
essentially unused. The few times something like it is needed we can
compute it explicitly.

For the case of native children of widgets we may cause a repaint
under native windows that are guaranteed to be opaque, but these
will be clipped by the native child anyway.

12 years agogdkwindow: Remove translate vfunc
Alexander Larsson [Wed, 17 Apr 2013 12:15:51 +0000 (14:15 +0200)]
gdkwindow: Remove translate vfunc

This is not used anymore

12 years agogdkwindow: Remove outstanding_moves stuff
Alexander Larsson [Wed, 17 Apr 2013 12:02:32 +0000 (14:02 +0200)]
gdkwindow: Remove outstanding_moves stuff

Since we now never move regions directly on the window we can
remove all the stuff that track outstanding moves and flushes then.

12 years agogdk: Don't ever do copies from the window
Alexander Larsson [Wed, 17 Apr 2013 11:13:46 +0000 (13:13 +0200)]
gdk: Don't ever do copies from the window

This basically neuters gdk_window_move_region, gdk_window_scroll
and gdk_window_move_resize, in that they now never copy any bits but
just invalidate the source and destination regions. This is a performance
loss, but the hope is that the simplifications it later allows will let
us recover this performance loss (which mainly affects scrolling).

12 years agoAdd more test cases
Matthias Clasen [Tue, 7 May 2013 12:48:01 +0000 (08:48 -0400)]
Add more test cases

These are taken from
https://bugzilla.gnome.org/show_bug.cgi?id=696882

12 years agoimcontexts: Include config.h first
Benjamin Otte [Tue, 7 May 2013 12:03:52 +0000 (14:03 +0200)]
imcontexts: Include config.h first

12 years agoreftests: Make window size not influence test
Benjamin Otte [Tue, 7 May 2013 11:46:51 +0000 (13:46 +0200)]
reftests: Make window size not influence test

The test is supposed to definitely wrap, make sure it does.

12 years agocheckbutton: Implement height-for-width
Benjamin Otte [Tue, 7 May 2013 11:46:15 +0000 (13:46 +0200)]
checkbutton: Implement height-for-width

12 years agocheckbutton: Split out a common function
Benjamin Otte [Tue, 7 May 2013 11:18:00 +0000 (13:18 +0200)]
checkbutton: Split out a common function

Makes size request / allocation code easier to understand.

12 years agoGtkPlacesSidebar: Fix an uninitialized variable in the error code path
Kalev Lember [Tue, 7 May 2013 11:41:21 +0000 (13:41 +0200)]
GtkPlacesSidebar: Fix an uninitialized variable in the error code path

Initialize it to NULL early so that we won't try to free an
uninitialized variable when handling an error.

12 years agogtksizegroup: Add explicit braces to avoid dangling else
Kalev Lember [Tue, 2 Apr 2013 22:35:27 +0000 (00:35 +0200)]
gtksizegroup: Add explicit braces to avoid dangling else

Otherwise the else after the for loop becomes attached to the wrong if.

12 years agoAdd a testcase for the dnd window breakage
Matthias Clasen [Tue, 7 May 2013 10:11:42 +0000 (06:11 -0400)]
Add a testcase for the dnd window breakage

12 years agoRemove abi checking scripts
Matthias Clasen [Tue, 7 May 2013 10:00:13 +0000 (06:00 -0400)]
Remove abi checking scripts

The exported symbols are now controlled explicitly from the headers,
no need to double-check.

12 years agoUpdated Hebrew translation.
Yaron Shahrabani [Tue, 7 May 2013 08:25:25 +0000 (11:25 +0300)]
Updated Hebrew translation.

12 years agoGtkEventBox: Correctly handle height for width
Alexander Larsson [Mon, 6 May 2013 15:48:46 +0000 (17:48 +0200)]
GtkEventBox: Correctly handle height for width

We need to pass on the width to the child.

https://bugzilla.gnome.org/show_bug.cgi?id=699140

12 years agocss shadow: Add extra slop to the blur clipping
Alexander Larsson [Mon, 6 May 2013 14:05:08 +0000 (16:05 +0200)]
css shadow: Add extra slop to the blur clipping

Turns out our blurring function isn't very nice, it has a lot
of energy past the blur radius, so clipping at exactly the
blur radius causes ugly gradient stops. This just adds 4
extra pixels of slop, which makes this better in most cases.

12 years agocss shadows: Split up rendering of shadows
Alexander Larsson [Mon, 6 May 2013 11:06:13 +0000 (13:06 +0200)]
css shadows: Split up rendering of shadows

We split up the rendering of blurred shadows into 9 parts, the
corners, the sides and the rest. This lets us only blur the "blurry"
part, and it lets us completely skip blurry parts that are fully
clipped.

12 years agocss shadows: Exit early if clip is empty
Alexander Larsson [Mon, 6 May 2013 10:34:09 +0000 (12:34 +0200)]
css shadows: Exit early if clip is empty

12 years agoGtkCssShadowValue: Break out the shadow rendering code
Alexander Larsson [Mon, 6 May 2013 07:48:10 +0000 (09:48 +0200)]
GtkCssShadowValue: Break out the shadow rendering code

This makes it easier to call it multiple times which we
want to do later.

12 years agocss: Clip outset box-shadow to outside of box
Alexander Larsson [Fri, 3 May 2013 10:50:18 +0000 (12:50 +0200)]
css: Clip outset box-shadow to outside of box

As per css3-background 7.2. Drop Shadows: the â€˜box-shadow’ property:

  An outer box-shadow casts a shadow as if the border-box of the element
  were opaque. The shadow is drawn outside the border edge only: it
  is clipped inside the border-box of the element.

Also verified vs firefox behaviour.

12 years agogtksettings: Fix loading of uint settings
Stef Walter [Mon, 6 May 2013 09:03:21 +0000 (11:03 +0200)]
gtksettings: Fix loading of uint settings

https://bugzilla.gnome.org/show_bug.cgi?id=699739

12 years agoRemove regex-based export control
Matthias Clasen [Sun, 5 May 2013 18:27:25 +0000 (14:27 -0400)]
Remove regex-based export control

All export control is now happening through annotations
in the headers.

12 years agoAdd visibility flags in gtk/a11y
Matthias Clasen [Sun, 5 May 2013 18:24:26 +0000 (14:24 -0400)]
Add visibility flags in gtk/a11y

12 years agoNew visibility handling in gtk
Matthias Clasen [Wed, 20 Mar 2013 22:17:00 +0000 (18:17 -0400)]
New visibility handling in gtk

12 years agoNew visibility handling in gdk
Matthias Clasen [Fri, 15 Mar 2013 10:35:30 +0000 (06:35 -0400)]
New visibility handling in gdk

Change the visibility handling to be the same way we do it in
GLib now. We pass -fvisibility=hidden to gcc and decorate public
functions with __attribute__((visibility("default"))).

This commit just does this for GDK, GTK+ will follow later.

12 years agoIgnore deprecations where needed
Matthias Clasen [Sun, 5 May 2013 14:31:08 +0000 (10:31 -0400)]
Ignore deprecations where needed

There are a few places where we are still using deprecated
API internally - ignore deprecations around these uses.

12 years agoFix up headerless symbols
Matthias Clasen [Sun, 5 May 2013 14:28:54 +0000 (10:28 -0400)]
Fix up headerless symbols

Some symbols are exported from GTK+, but do not appear in any
headers. For these, use _GDK_EXTERN in the source file to make
sure they are exported.

12 years agoAdd annotations in a11y headers
Matthias Clasen [Sun, 5 May 2013 18:24:55 +0000 (14:24 -0400)]
Add annotations in a11y headers

12 years agoAdd annotations to gtk headers
Matthias Clasen [Wed, 20 Mar 2013 22:17:32 +0000 (18:17 -0400)]
Add annotations to gtk headers

Add annotations to all exported functions in GTK+ headers.

12 years agogtk: Use GDK_AVAILABLE_IN_ALL for generated enum types
Matthias Clasen [Wed, 20 Mar 2013 18:38:59 +0000 (14:38 -0400)]
gtk: Use GDK_AVAILABLE_IN_ALL for generated enum types

glib-mkenums is not currently clever enough to know which version an
enum type was added in, so just mark all the _get_type() functions as
available in all versions.

12 years agoJust ignore deprecations inside deprecated/
Matthias Clasen [Sun, 5 May 2013 15:32:20 +0000 (11:32 -0400)]
Just ignore deprecations inside deprecated/

Not worth tracking uses of deprecated API individually here.

12 years agoUse _GDK_EXTERN when defining the decorators
Matthias Clasen [Fri, 15 Mar 2013 12:30:23 +0000 (08:30 -0400)]
Use _GDK_EXTERN when defining the decorators

Make all GDK_DEPRECATED and GDK_AVAILABLE macros use a
new _GDK_EXTERN macro. _GDK_EXTERN defaults to just 'extern'
but a subsequent commit will add visibility handling to it
while building GTK+.

12 years agoAdd GDK_AVAILABLE_IN_ALL annotations in gdk
Matthias Clasen [Fri, 15 Mar 2013 09:58:39 +0000 (05:58 -0400)]
Add GDK_AVAILABLE_IN_ALL annotations in gdk

This is in preparation to modernizing our handing
of exported symbols.

12 years agoUse GDK_AVAILABLE_IN_ALL for generated enum types
Matthias Clasen [Fri, 15 Mar 2013 10:50:34 +0000 (06:50 -0400)]
Use GDK_AVAILABLE_IN_ALL for generated enum types

glib-mkenums is not currently clever enough to know which version an
enum type was added in, so just mark all the _get_type() functions as
available in all versions.

12 years agogdkversionmacros.h: add GDK_AVAILABLE_IN_ALL
Matthias Clasen [Fri, 15 Mar 2013 01:22:22 +0000 (21:22 -0400)]
gdkversionmacros.h: add GDK_AVAILABLE_IN_ALL

Add a macro to declare that a particular symbol is available in all
versions of GTK+.

All newly-added symbols should have proper version macros (like
GDK_AVAILABLE_IN_3_4).

12 years agogtk-demo: Include config.h first
Matthias Clasen [Sun, 5 May 2013 16:16:51 +0000 (12:16 -0400)]
gtk-demo: Include config.h first

If config.h is included after gdkversionmacros.h, _GDK_EXTERN
gets redefined and cpp doesn't like that.

12 years agogtk-demo: Don't include config.h needlessly
Matthias Clasen [Sun, 5 May 2013 16:16:16 +0000 (12:16 -0400)]
gtk-demo: Don't include config.h needlessly

It is not needed here.

12 years agoRemove an unused private function
Matthias Clasen [Sun, 5 May 2013 18:26:33 +0000 (14:26 -0400)]
Remove an unused private function

_gtk_text_layout_get_line_xrange was not exported and not used
inside GTK+ either.

12 years agoUpdated Tajik Translation
Victor Ibragimov [Sun, 5 May 2013 14:22:27 +0000 (19:22 +0500)]
Updated Tajik Translation

12 years agoAlways use gint for border_width
Matthias Clasen [Sat, 4 May 2013 23:21:56 +0000 (19:21 -0400)]
Always use gint for border_width

This avoids an evil trap when doing MAX (..., ... - 2 * border_width)
and the expression on the right gets promoted to unsigned, instead
of going negative as you would expect.
https://bugzilla.gnome.org/show_bug.cgi?id=699633

12 years agowindow: handle titlebar property for the buildable interface
Ignacio Casal Quinteiro [Sat, 4 May 2013 20:51:37 +0000 (22:51 +0200)]
window: handle titlebar property for the buildable interface

12 years agoSome window size test tweaks
Matthias Clasen [Sun, 28 Apr 2013 21:50:01 +0000 (17:50 -0400)]
Some window size test tweaks

Draw a checkerboard pattern, and add an interactive mode that
waits for events before moving on. This makes it easier to see
when a size is wrong.

12 years agoAdd some more GtkWindow tests
Matthias Clasen [Sat, 27 Apr 2013 22:01:19 +0000 (18:01 -0400)]
Add some more GtkWindow tests

These tests check that a toplevel window ends up with the expected
size after setting default sizes or resizing. It currently passes
on X, but fails with client-side decorations under X and Wayland.

12 years agoPrevent criticals when initializing a Wayland display
Matthias Clasen [Sat, 4 May 2013 20:11:00 +0000 (16:11 -0400)]
Prevent criticals when initializing a Wayland display

When we call _gdk_wayland_display_load_cursor_theme during
the initial opening of the first display, gdk_setting_get does
not work yet, since it relies on the default display/screen
being set, which only happens after open returns.
Instead, just use the screen of this display.

12 years agoFix setting child properties
Matthias Clasen [Sat, 4 May 2013 02:29:20 +0000 (22:29 -0400)]
Fix setting child properties

This was broken in e9f182e37a7f6e2dc339054841a3c9f930f573ed

12 years agoDon't clear data on a NULL screen
Matthias Clasen [Sat, 4 May 2013 00:03:12 +0000 (20:03 -0400)]
Don't clear data on a NULL screen

This makes GtkSettings survive the object finalize test.

12 years agoBug 606378 - gdk doesn't handle non-main thread rendering on Quartz
John Ralls [Fri, 3 May 2013 23:41:49 +0000 (16:41 -0700)]
Bug 606378 - gdk doesn't handle non-main thread rendering on Quartz

Document that the restrictions on Win32 apply also to Quartz.

12 years agowidget: fix two typos in api-docs
Stefan Sauer [Fri, 3 May 2013 18:39:24 +0000 (20:39 +0200)]
widget: fix two typos in api-docs

12 years agoreftests: Don't use spaces in Makefile first line
Colin Walters [Thu, 2 May 2013 22:32:07 +0000 (18:32 -0400)]
reftests: Don't use spaces in Makefile first line

Otherwise Emacs makes one's life miserable.

12 years agotreemodelsort: destroy the root only if we are removing the latest row of the level
Guillaume Desmottes [Thu, 25 Apr 2013 14:30:12 +0000 (16:30 +0200)]
treemodelsort: destroy the root only if we are removing the latest row of the level

GtkIconView doesn't ref the rows of the model so we have to make sure that a
level is actually empty before destroying it.

https://bugzilla.gnome.org/show_bug.cgi?id=698846

12 years agoMake it possible to finalize theming engines
Matthias Clasen [Fri, 3 May 2013 01:36:45 +0000 (21:36 -0400)]
Make it possible to finalize theming engines

This was broken since forever. Good that we never finalize
theme engines...

12 years agoGtkInvisible behaves like GtkWindow
Matthias Clasen [Fri, 3 May 2013 00:43:34 +0000 (20:43 -0400)]
GtkInvisible behaves like GtkWindow

As far as refcounting is concerned, invisibles are like
windows: you have to destroy them.

12 years agoOnly check for finalization after a grace period
Matthias Clasen [Fri, 3 May 2013 00:42:24 +0000 (20:42 -0400)]
Only check for finalization after a grace period

This makes the file chooser pass this test

12 years agoPrevent a segfault if GtkAppChooserDialog gets disposed early
Matthias Clasen [Fri, 3 May 2013 00:00:49 +0000 (20:00 -0400)]
Prevent a segfault if GtkAppChooserDialog gets disposed early

If the async call is finished after the dialog is already disposed,
bad things happen. Prevent that by marking the dialog as dismissed
in this case.

12 years agogdk: Remove new gdk_display_manager_peek() API
Benjamin Otte [Thu, 2 May 2013 14:27:47 +0000 (16:27 +0200)]
gdk: Remove new gdk_display_manager_peek() API

It's not necessary anymore because gdk_display_manager_get() always
succeeds and the value is independant of when it was called as it's no
longer backend specific.

12 years agowindow: Handle attach widget disappearing without weak pointers
Benjamin Otte [Thu, 2 May 2013 14:26:37 +0000 (16:26 +0200)]
window: Handle attach widget disappearing without weak pointers

Fixes the window not emitting a "notify::attached-to" signal when the
attach-widget goes away.

12 years agodisplaymanager: Remove GInitable implementation
Benjamin Otte [Thu, 2 May 2013 14:17:30 +0000 (16:17 +0200)]
displaymanager: Remove GInitable implementation

This is not needed anymore, as only one type exists and that type can
always be instantiated.

12 years agobroadway: Remove displaymanager implementation
Benjamin Otte [Thu, 2 May 2013 14:15:02 +0000 (16:15 +0200)]
broadway: Remove displaymanager implementation

This is an API break, but the broadway backend is unsupported, so we can
get away with it.

12 years agowayland: Remove displaymanager implementation
Benjamin Otte [Thu, 2 May 2013 14:12:53 +0000 (16:12 +0200)]
wayland: Remove displaymanager implementation

This is an API break, but the wayland backend is unsupported, so we can
get away with it.

12 years agodisplaymanager: Don't create backend-specific display managers
Benjamin Otte [Thu, 2 May 2013 14:09:09 +0000 (16:09 +0200)]
displaymanager: Don't create backend-specific display managers

Just create a backend-agnostic displaymanager. Creating the displays
later on determines the backend in use.

12 years agodisplaymanager: Copy logic to display creation
Benjamin Otte [Thu, 2 May 2013 14:06:21 +0000 (16:06 +0200)]
displaymanager: Copy logic to display creation

Use the same logic for display creation in
gdk_display_manager_open_display() that is used for displaymanager
creation.

12 years agoquartz: Move initialization code to display_class_init
Benjamin Otte [Thu, 2 May 2013 13:43:09 +0000 (15:43 +0200)]
quartz: Move initialization code to display_class_init

This follows the same reasoning as the X11 backend in commit
0122a9da8eab518652553aa4e777d5caf18a6163

12 years agowin32: Call windowing init from display_class_init()
Benjamin Otte [Thu, 2 May 2013 13:36:41 +0000 (15:36 +0200)]
win32: Call windowing init from display_class_init()

This follows the same reasoning as the X11 backend in commit
0122a9da8eab518652553aa4e777d5caf18a6163

12 years agoa11y: Remove AtkSelection implementation from combobox
Benjamin Otte [Thu, 2 May 2013 13:26:33 +0000 (15:26 +0200)]
a11y: Remove AtkSelection implementation from combobox

AtkSelection requires that the immediate children of the object are the
selectable items. The combobox however is implemented with just 1 child:
The popup menu.

The popup menu is implementing the selectable interface.

Test are updated to reflect this change.

12 years agoTry this again
Matthias Clasen [Thu, 2 May 2013 13:29:35 +0000 (09:29 -0400)]
Try this again

When the hostnamed call is cancelled, we get a G_IO_ERROR_CANCELLED
error back. Handle it properly.

12 years agoRevert "Remove a superfluous ref"
Matthias Clasen [Thu, 2 May 2013 12:21:42 +0000 (08:21 -0400)]
Revert "Remove a superfluous ref"

This reverts commit f326c0eac806b037c7100309887ffc5f9193070d.

Grr, turns out that cancelling is not that reliable :-(

12 years agoClear list of attached windows when disposing a widget
Matthias Clasen [Thu, 2 May 2013 12:02:40 +0000 (08:02 -0400)]
Clear list of attached windows when disposing a widget

We were silently relying on everybody to detach their windows,
and would leak memory otherwise.

12 years agoGtkWindow: use a weak ref to keep track of attach_widget
Matthias Clasen [Thu, 2 May 2013 12:01:14 +0000 (08:01 -0400)]
GtkWindow: use a weak ref to keep track of attach_widget

Taking a full reference of the attach widget creates a reference
cycle, and keeps the attach_widget alive longer than it should.

12 years agoRemove a superfluous ref
Matthias Clasen [Thu, 2 May 2013 09:53:40 +0000 (05:53 -0400)]
Remove a superfluous ref

If we cancel the call in dispose, no need to ref the object
we pass as userdata. Avoids the risk of leaking the ref if
the call is actually canceled.

12 years agoFix build
Matthias Clasen [Thu, 2 May 2013 09:37:58 +0000 (05:37 -0400)]
Fix build